package com.example.abstractfactory.cluster;

import lombok.extern.slf4j.Slf4j;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

/**
 * @version 1.0.0
 * @className: IIR
 * @description: 这是另外一套集群服务，有时候在企业开发中就很有可能出现两套服务，这里我们也是为了做模拟案例，
 * 所以添加两套实现同样功能的不同服务，来学习抽象工厂模式。
 * @author: rosszhang
 * @date: 2022/6/8 17:19
 */
@Slf4j
public class IIR {
    private Map<String, String> dataMap = new ConcurrentHashMap<>();

    public String gain(String key) {
        log.info("IIR获取缓存数据key:{}", key);
        return dataMap.get(key);
    }

    public void set(String key, String value) {
        log.info("IIR写入缓存数据key:{}，val:{}", key, value);
        dataMap.put(key, value);
    }

    public void setExpire(String key, String value, long timeout, TimeUnit timeUnit) {
        log.info("IIR写入缓存数据key:{}，val:{},timeout:{},timeUnit:{}", key, value, timeout, timeUnit);
        dataMap.put(key, value);
    }

    public void del(String key) {
        log.info("IIR删除数据，key:{}", key);
        dataMap.remove(key);
    }
}
